﻿//此头文件定义了寄存器、栈等原件的结构
//
#include<stdbool.h>
enum
{
	VTYPE_OP,
	VTYPE_INT,
	VTYPE_STR,
	VTYPE_DOUBLE,
	VTYPE_NULL  //注意，这里的null 与 解释器的err意义相同
};
typedef struct
{
	void* value;
	int type;
	int len;
}MValue;//一个值

typedef struct
{
	MValue value;
}MRegister;//一个寄存器
typedef struct
{
	int* stack;//栈内容
	int ps;//当前栈指针位置
	int size;//当前栈大小
}MStack;//栈

typedef struct
{
	MValue value;
	char* name;//名称
}MVar;//一个变量

MValue MCreateValue(int size);
bool MSetValue(void* buf, MValue* val);
bool MMallocValue(int size, MValue* val);
void MDeletValue(MValue* val);
MStack MCreateStack(int size);
